<!doctype html>
<html>
<head>
<title>DataSource Stat</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf8" />
<link href='css/bootstrap.min.css' rel="stylesheet" />
<link href="css/style.css" type="text/css" rel="stylesheet" />
<script src="js/doT.js" type="text/javascript" charset="utf8"></script>
<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript" src="js/bootstrap.min.js"></script>
<script src="js/lang.js" type="text/javascript" charset="utf8"></script>
<script src="js/common.js" type="text/javascript" charset="utf8"></script>
</head>
<body>
    <div class="container-fluid">
        <div class="row-fluid">
            <div class="span12">
                <h3 style="display:inline;">
                    DataSourceStat List
                    <a href="datasource.json" target="_blank" class="lang"  langKey="ViewJSONAPI"></a>

                    <span style="font-size:50%;font-weight:100;" id="dataSourceLinkSpan"></span>
                    <script type="text/template" id="dataSourceLinkTemplate">
                        {{~ it.Content :datasourceNow:i }}
                            <a target="_blank" href="sql.html?dataSourceId={{=datasourceNow.Identity}}">[SQL{{=i+1}}]</a>
                        {{~ }}  
                    </script>

                    <span style="font-size:50%;font-weight:100;">
                        ${(dubboProvider.toNameString())!}
                    </span>

                </h3>
                <div class="alert alert-error clearfix" style="margin-bottom: 5px; width: 195px; padding: 2px 15px 2px 10px;">(*) property for user to setup</div>
            </div>
        </div>
    </div>
    <script id="datasource-tmpl" type="text/template">
            {{~ it.Content :datasourceNow:i  }}
            <ul class="nav nav-tabs" id="datasourceTab">
                    <li class="active">
                        <a href="datasource.html#dstab{{=datasourceNow.Identity}}">{{=datasourceNow.Name}}</a>
                    </li>
            </ul>
            <div class="tab-content">
                <div class="tab-pane active" id="dstab{{=datasourceNow.Identity}}">
                    <h4>
                        Basic Info For {{=datasourceNow.Name}}<a href="datasource-{{=datasourceNow.Identity}}.json" target="_blank"  >View JSON API</a>
                    </h4>
                    <table class="table table-bordered" style="background-color: #fff">
                        <tbody>
                            <tr>
                                <td valign="top" class="td_lable" > *  <span class="lang"  langKey="UserName">UserName</span></td>
                                <td>{{=datasourceNow.UserName}}</td>
                                <td  class="lang"  langKey="UserNameDesc">Specify the username used when creating a new connection.</td>
                            </tr>
                            <tr>
                                <td valign="top" class="td_lable" > *  <span class="lang"  langKey="URL">URL</span></td>
                                <td>{{=datasourceNow.URL}}</td>
                                <td  class="lang"  langKey="URLDesc">The JDBC driver connection URL</td>
                            </tr>
                            <tr>
                                <td valign="top" class="td_lable" > *  <span class="lang"  langKey="DbType">DbType</span></td>
                                <td>{{=datasourceNow.DbType}}</td>
                                <td  class="lang"  langKey="DbTypeDesc">database type</td>
                            </tr>
                            <tr>
                                <td valign="top" class="td_lable" > *  <span class="lang"  langKey="DriverClassName">DriverClassName</span></td>
                                <td>{{=datasourceNow.DriverClassName}}</td>
                                <td  class="lang"  langKey="DriverClassNameDesc">The fully qualifed name of the JDBC driver class</td>
                            </tr>
                            <tr>
                                <td valign="top" class="td_lable" > *  <span class="lang"  langKey="FilterClassNames">FilterClassNames</span></td>
                                <td>{{=datasourceNow.FilterClassNames}}</td>
                                <td  class="lang"  langKey="FilterClassNamesDesc">All the fully qualifed name of the filter classes</td>
                            </tr>
                            <tr>
                                <td valign="top" class="td_lable" > *  <span class="lang"  langKey="TestOnBorrow">TestOnBorrow</span></td>
                                <td>{{=datasourceNow.TestOnBorrow}}</td>
                                <td  class="lang"  langKey="TestOnBorrowDesc">  Test or not when borrow a connection</td>
                            </tr>
                            <tr>
                                <td valign="top" class="td_lable" > *  <span class="lang"  langKey="TestWhileIdle">TestWhileIdle</span></td>
                                <td>{{=datasourceNow.TestWhileIdle}}</td>
                                <td  class="lang"  langKey="TestWhileIdleDesc">Test or not when a connection is idle for a while</td>
                            </tr>
                            <tr>
                                <td valign="top" class="td_lable" > *  <span class="lang"  langKey="TestOnReturn">TestOnReturn</span></td>
                                <td>{{=datasourceNow.TestOnReturn}}</td>
                                <td  class="lang"  langKey="TestOnReturnDesc">Test or not when return a connection</td>
                            </tr>
                            <tr>
                                <td valign="top" class="td_lable" > *  <span class="lang"  langKey="InitialSize">InitialSize</span></td>
                                <td>{{=datasourceNow.InitialSize}}</td>
                                <td  class="lang"  langKey="InitialSizeDesc">The size of datasource connections to create when initial a datasource</td>
                            </tr>
                            <tr>
                                <td valign="top" class="td_lable" > *  <span class="lang"  langKey="MinIdle">MinIdle</span></td>
                                <td>{{=datasourceNow.MinIdle}}</td>
                                <td  class="lang"  langKey="MinIdleDesc">The minimum number of connections a pool should hold. </td>
                            </tr>
                            <tr>
                                <td valign="top" class="td_lable" > *  <span class="lang"  langKey="MaxActive">MaxActive</span></td>
                                <td>{{=datasourceNow.MaxActive}}</td>
                                <td  class="lang"  langKey="MaxActiveDesc">The maximum number of connections for a pool</td>
                            </tr>
                            <tr>
                                <td valign="top" class="td_lable" > *  <span class="lang"  langKey="QueryTimeout">QueryTimeout</span></td>
                                <td>{{=datasourceNow.QueryTimeout}}</td>
                                <td  class="lang"  langKey="QueryTimeoutDesc"></td>
                            </tr>
                            <tr>
                                <td valign="top" class="td_lable" > *  <span class="lang"  langKey="TransactionQueryTimeout">TransactionQueryTimeout</span></td>
                                <td>{{=datasourceNow.TransactionQueryTimeout}}</td>
                                <td  class="lang"  langKey="TransactionQueryTimeoutDesc"></td>
                            </tr>
                            <tr>
                                <td valign="top" class="td_lable" > *  <span class="lang"  langKey="LoginTimeout">LoginTimeout</span></td>
                                <td>{{=datasourceNow.LoginTimeout}}</td>
                                <td  class="lang"  langKey="LoginTimeoutDesc"></td>
                            </tr>
                            <tr>
                                <td valign="top" class="td_lable" > *  <span class="lang"  langKey="ValidConnectionCheckerClassName">ValidConnectionCheckerClassName</span></td>
                                <td>{{=datasourceNow.ValidConnectionCheckerClassName}}</td>
                                <td  class="lang"  langKey="ValidConnectionCheckerClassNameDesc"></td>
                            </tr>
                            <tr>
                                <td valign="top" class="td_lable" > *  <span class="lang"  langKey="ExceptionSorterClassName">ExceptionSorterClassName</span></td>
                                <td>{{=datasourceNow.ExceptionSorterClassName}}</td>
                                <td  class="lang"  langKey="ExceptionSorterClassNameDesc"></td>
                            </tr>
                            <tr>
                                <td valign="top" class="td_lable" > *  <span class="lang"  langKey="DefaultAutoCommit">DefaultAutoCommit</span></td>
                                <td>{{=datasourceNow.DefaultAutoCommit}}</td>
                                <td  class="lang"  langKey="DefaultAutoCommitDesc"></td>
                            </tr>
                            <tr>
                                <td valign="top" class="td_lable" > *  <span class="lang"  langKey="DefaultReadOnly">DefaultReadOnly</span></td>
                                <td>{{=datasourceNow.DefaultReadOnly}}</td>
                                <td  class="lang"  langKey="DefaultReadOnlyDesc"></td>
                            </tr>
                            <tr>
                                <td valign="top" class="td_lable" > *  <span class="lang"  langKey="DefaultTransactionIsolation">DefaultTransactionIsolation</span></td>
                                <td>{{=datasourceNow.DefaultTransactionIsolation}}</td>
                                <td  class="lang"  langKey="DefaultTransactionIsolationDesc"></td>
                            </tr>
                            <tr>
                                <td valign="top" class="td_lable" >   <span class="lang"  langKey="NotEmptyWaitCount">NotEmptyWaitCount</span></td>
                                <td>{{=datasourceNow.NotEmptyWaitCount}}</td>
                                <td  class="lang"  langKey="NotEmptyWaitCountDesc">Total times for wait to get a connection</td>
                            </tr>
                            <tr>
                                <td valign="top" class="td_lable" >   <span class="lang"  langKey="NotEmptyWaitMillis">NotEmptyWaitMillis</span></td>
                                <td>{{=datasourceNow.NotEmptyWaitMillis}}</td>
                                <td  class="lang"  langKey="NotEmptyWaitMillisDesc">Total millins for wait to get a connection</td>
                            </tr>
                            <tr>
                                <td valign="top" class="td_lable" >   <span class="lang"  langKey="WaitThreadCount">WaitThreadCount</span></td>
                                <td>{{=datasourceNow.WaitThreadCount}}</td>
                                <td  class="lang"  langKey="WaitThreadCountDesc">The current waiting thread count</td>
                            </tr>
                            <tr>
                                <td valign="top" class="td_lable" >   <span class="lang"  langKey="StartTransactionCount">StartTransactionCount</span></td>
                                <td>{{=datasourceNow.StartTransactionCount}}</td>
                                <td  class="lang"  langKey="StartTransactionCountDesc">The count of start transaction</td>
                            </tr>
                            <tr>
                                <td valign="top" class="td_lable" >   <span class="lang"  langKey="TransactionHistogram">TransactionHistogram</span></td>
                                <td>{{=datasourceNow.TransactionHistogram}}</td>
                                <td  class="lang"  langKey="TransactionHistogramDesc">The histogram values of transaction time, [0-10 ms, 10-100 ms, 100-1 s, 1-10 s, 10-100 s, >100 s]</td>
                            </tr>
                            <tr>
                                <td valign="top" class="td_lable" >   <span class="lang"  langKey="PoolingCount">PoolingCount</span></td>
                                <td>{{=datasourceNow.PoolingCount}}</td>
                                <td  class="lang"  langKey="PoolingCountDesc">The current usefull connection count</td>
                            </tr>
                            <tr>
                                <td valign="top" class="td_lable" >   <span class="lang"  langKey="PoolingPeak">PoolingPeak</span></td>
                                <td>{{=datasourceNow.PoolingPeak}}</td>
                                <td  class="lang"  langKey="PoolingPeakDesc">The usefull connection peak count</td>
                            </tr>
                            <tr>
                                <td valign="top" class="td_lable" >   <span class="lang"  langKey="PoolingPeakTime">PoolingPeakTime</span></td>
                                <td>{{=datasourceNow.PoolingPeakTime}}</td>
                                <td  class="lang"  langKey="PoolingPeakTimeDesc">The usefull connection peak time</td>
                            </tr>
                            <tr>
                                <td valign="top" class="td_lable" >   <span class="lang"  langKey="ActiveCount">ActiveCount</span></td>
                                <td>{{=datasourceNow.ActiveCount}}</td>
                                <td  class="lang"  langKey="ActiveCountDesc">The current active connection count</td>
                            </tr>
                            <tr>
                                <td valign="top" class="td_lable" >   <span class="lang"  langKey="ActivePeak">ActivePeak</span></td>
                                <td>{{=datasourceNow.ActivePeak}}</td>
                                <td  class="lang"  langKey="ActivePeakDesc">The current active connection peak count</td>
                            </tr>
                            <tr>
                                <td valign="top" class="td_lable" >   <span class="lang"  langKey="ActivePeakTime">ActivePeakTime</span></td>
                                <td>{{=datasourceNow.ActivePeakTime}}</td>
                                <td  class="lang"  langKey="ActivePeakTimeDesc">The active connection peak time</td>
                            </tr>
                            <tr>
                                <td valign="top" class="td_lable" >   <span class="lang"  langKey="LogicConnectCount">LogicConnectCount</span></td>
                                <td>{{=datasourceNow.LogicConnectCount}}</td>
                                <td  class="lang"  langKey="LogicConnectCountDesc">Total connect times from datasource</td>
                            </tr>
                            <tr>
                                <td valign="top" class="td_lable" >   <span class="lang"  langKey="LogicCloseCount">LogicCloseCount</span></td>
                                <td>{{=datasourceNow.LogicCloseCount}}</td>
                                <td  class="lang"  langKey="LogicCloseCountDesc">Total close connect times from datasource</td>
                            </tr>
                            <tr>
                                <td valign="top" class="td_lable" >   <span class="lang"  langKey="LogicConnectErrorCount">LogicConnectErrorCount</span></td>
                                <td>{{=datasourceNow.LogicConnectErrorCount}}</td>
                                <td  class="lang"  langKey="LogicConnectErrorCountDesc">Total connect error times</td>
                            </tr>
                            <tr>
                                <td valign="top" class="td_lable" >   <span class="lang"  langKey="PhysicalConnectCount">PhysicalConnectCount</span></td>
                                <td>{{=datasourceNow.PhysicalConnectCount}}</td>
                                <td  class="lang"  langKey="PhysicalConnectCountDesc">Create physical connnection count</td>
                            </tr>
                            <tr>
                                <td valign="top" class="td_lable" >   <span class="lang"  langKey="PhysicalCloseCount">PhysicalCloseCount</span></td>
                                <td>{{=datasourceNow.PhysicalCloseCount}}</td>
                                <td  class="lang"  langKey="PhysicalCloseCountDesc">Close physical connnection count</td>
                            </tr>
                            <tr>
                                <td valign="top" class="td_lable" >   <span class="lang"  langKey="PhysicalConnectErrorCount">PhysicalConnectErrorCount</span></td>
                                <td>{{=datasourceNow.PhysicalConnectErrorCount}}</td>
                                <td  class="lang"  langKey="PhysicalConnectErrorCountDesc">Total physical connect error times</td>
                            </tr>
                            <tr>
                                <td valign="top" class="td_lable" >   <span class="lang"  langKey="ExecuteCount">ExecuteCount</span></td>
                                <td>{{=datasourceNow.ExecuteCount}}</td>
                                <td  class="lang"  langKey="ExecuteCountDesc"></td>
                            </tr>
                            <tr>
                                <td valign="top" class="td_lable" >   <span class="lang"  langKey="ErrorCount">ErrorCount</span></td>
                                <td>{{=datasourceNow.ErrorCount}}</td>
                                <td  class="lang"  langKey="ErrorCountDesc"></td>
                            </tr>
                            <tr>
                                <td valign="top" class="td_lable" >   <span class="lang"  langKey="CommitCount">CommitCount</span></td>
                                <td>{{=datasourceNow.CommitCount}}</td>
                                <td  class="lang"  langKey="CommitCountDesc"></td>
                            </tr>
                            <tr>
                                <td valign="top" class="td_lable" >   <span class="lang"  langKey="RollbackCount">RollbackCount</span></td>
                                <td>{{=datasourceNow.RollbackCount}}</td>
                                <td  class="lang"  langKey="RollbackCountDesc"></td>
                            </tr>
                            <tr>
                                <td valign="top" class="td_lable" >   <span class="lang"  langKey="PSCacheAccessCount">PSCacheAccessCount</span></td>
                                <td>{{=datasourceNow.PSCacheAccessCount}}</td>
                                <td  class="lang"  langKey="PSCacheAccessCountDesc">PerpareStatement access count</td>
                            </tr>
                            <tr>
                                <td valign="top" class="td_lable" >   <span class="lang"  langKey="PSCacheHitCount">PSCacheHitCount</span></td>
                                <td>{{=datasourceNow.PSCacheHitCount}}</td>
                                <td  class="lang"  langKey="PSCacheHitCountDesc">PerpareStatement hit count</td>
                            </tr>
                            <tr>
                                <td valign="top" class="td_lable" >   <span class="lang"  langKey="PSCacheMissCount">PSCacheMissCount</span></td>
                                <td>{{=datasourceNow.PSCacheMissCount}}</td>
                                <td  class="lang"  langKey="PSCacheMissCountDesc">PerpareStatement miss count</td>
                            </tr>
                            <tr>
                                <td valign="top" class="td_lable" >   <span class="lang"  langKey="ConnectionHoldTimeHistogram">ConnectionHoldTimeHistogram</span></td>
                                <td>{{=datasourceNow.ConnectionHoldTimeHistogram}}</td>
                                <td  class="lang"  langKey="ConnectionHoldTimeHistogramDesc">The histogram values of connection hold time, [0-1 ms, 1-10 ms, 10-100 ms, 100ms-1s, 1-10 s, 10-100 s, 100-1000 s, >1000 s]</td>
                            </tr>
                            <tr>
                                <td valign="top" class="td_lable" >   <span class="lang"  langKey="ClobOpenCount">ClobOpenCount</span></td>
                                <td>{{=datasourceNow.ClobOpenCount}}</td>
                                <td  class="lang"  langKey="ClobOpenCountDesc"></td>
                            </tr>
                            <tr>
                                <td valign="top" class="td_lable" >   <span class="lang"  langKey="BlobOpenCount">BlobOpenCount</span></td>
                                <td>{{=datasourceNow.BlobOpenCount}}</td>
                                <td  class="lang"  langKey="BlobOpenCountDesc"></td>
                            </tr>
                            <tr>
                                    <td valign="top" class="td_lable"><span class="lang" langKey="ActiveConnectionStackTrace">ActiveConnection StackTrace</span></td>
                                    <td>
                                        <a href="activeConnectionStackTrace.html?datasourceId=25211438">View</a>
                                    </td>
                                    <td>
                                        StackTrace for active Connection. 
                                        <a href="activeConnectionStackTrace-{{=datasourceNow.Identity}}.json"   target="_blank">[View JSON API]</a>
                                    </td>
                                </tr>
                                <tr>
                                    <td valign="top" class="td_lable"><span class="lang" langKey="PollingConnectionInfo">PollingConnection Info</span></td>
                                    <td>
                                        <a href="connectionInfo.html?datasourceId={{=datasourceNow.Identity}}">View</a>
                                    </td>
                                    <td>
                                        Info for polling connection. 
                                        <a href="connectionInfo-{{=datasourceNow.Identity}}.json"   target="_blank">[View JSON API]</a>
                                    </td>
                                </tr>
                                <tr>
                                    <td valign="top" class="td_lable"><span class="lang" langKey="SQLList">SQL List</span></td>
                                    <td>
                                        <a href="sql.html?dataSourceId={{=datasourceNow.Identity}}">View</a>
                                    </td>
                                    <td>
                                        Info for SQL.
                                        <a href="sql.json?dataSourceId={{=datasourceNow.Identity}}"     target="_blank">[View JSON API]</a>
                                    </td>
                                </tr>
                        </tbody>
                    </table>
                </div>
            </div>
            {{~ }}  
        </script>
    <script type="text/javascript">
                    $.namespace("druid.datasource");
                    druid.datasource = function() {

                        return {
                            init : function() {
                                druid.common.buildHead(1);
                                this.ajaxRequestForBasicInfo();
                                druid.lang.init();
                            },
                            ajaxRequestForBasicInfo : function() {
                                $.ajax({
                                    type : 'POST',
                                    url : "datasource.json",
                                    success : function(data) {
                                        var tmpl = $('#datasource-tmpl').html();
                                        var doTtmpl = doT.template(tmpl);
                                        var contentHtml = doTtmpl(data);

                                        $(".span12 h3").after(contentHtml);

                                        // doT 模板引擎
                                        $("#dataSourceLinkSpan").html(doT.template($('#dataSourceLinkTemplate').html())(data));

                                        $('#datasourceTab a').click(function(e) {
                                            e.preventDefault();
                                            $(this).tab('show');
                                        });
                                        druid.lang.trigger();
                                    },
                                    dataType : "json"
                                });
                            }
                        }
                    }();

                    $(document).ready(function() {
                        druid.datasource.init();
                    });
                </script>
</body>
</html>